package main.java.br.com.projeto.domain.service;

import java.io.Serializable;
import java.util.Calendar;
import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

import main.java.br.com.projeto.domain.dao.DaoAgendamento;
import main.java.br.com.projeto.domain.entity.Agendamento;

@ManagedBean
@SessionScoped
public class AgendamentoService implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = -1324856767912480074L;
	
	private DaoAgendamento dao = new DaoAgendamento();
	
	public Agendamento insert( Agendamento agendamento )
	{
		return this.dao.insert(agendamento);
	}
	
	public Agendamento update( Agendamento agendamento )
	{
		return this.dao.update( agendamento );
	}
	
	public List<Agendamento> listAgendamentos()
	{
		return this.dao.findAll();
	}
	
	public List<Agendamento> listAgendamentoByData( Calendar data )
	{
		return this.dao.listByData(data);
	}
	
	public List<Agendamento> listAgendamentoByServicoAndData(Long servicoId, Calendar data) {
		return this.dao.listByServicoIdAndData(servicoId, data);
	}

	public List<Agendamento> listAgendamentoByFuncionarioAndData(Long funcionarioId, Calendar data) {
		return this.dao.listByFuncionarioIdAndData(funcionarioId, data);
	}
	
	public List<Agendamento> listAgendamentoByClienteAndData(Long clienteId, Calendar data) {
		return this.dao.listByClienteIdAndData(clienteId, data);
	}
	
	public void removeAgendamento( Agendamento agendamento )
	{
		this.dao.remove(agendamento);
	}
	
	public Agendamento findAgendamentoById( Long id )
	{
		return this.dao.find(id);
	}
	
	public List<Agendamento> listAgendamentoByClienteId( Long clienteId )
	{
		return this.dao.listByClienteId(clienteId);
	}
}
